Hopp til innhold

React (webrammeverk)

Fra Wikipedia, den frie encyklopedi
React
Skaper(e)Meta
Utvikler(e)Meta, Harshil Patel, Sebastian Markbåge, Dan Abramov, Rachel Nabors, Andrew Clark
Utgitt 29. mai 2013
Nyeste versjon18.3.1 (26. april 2024)[1]
Kodelagerhttps://github.com/facebook/react
Operativsystemmultiplattform
Skrevet iJavaScript
TypeWebapplikasjon
LisensMIT-lisensen[2][3]
Nettstedar.reactjs.org (ar)
ru.reactjs.org (ru)
react.dev (en) (2023–)

React (også kjent som React.js og ReactJS) er et JavaScript-bibliotek[4] for å lage og bygge brukergrensesnitt. Det vedlikeholdes av Meta (tidligere Facebook) og et fellesskap av ulike utviklere og selskaper.[5][6][7]

React brukes gjerne som et utgangspunkt i utviklingen av enkeltside- (engelsk single-page) eller mobilapplikasjoner. Rammeverket er optimalisert for raskt å hente ut skiftende data som må registreres. Henting av data er imidlertid bare begynnelsen på det som skjer på en nettside, og det er grunnen til at komplekse React-applikasjoner vanligvis krever ekstra biblioteker for tilstandsstyring, ruting og interaksjon med et API.[8][9] Redux[10], React Router[11] og Axios[12] er eksempler på slike biblioteker.

React ble i utgangspunktet utviklet i 2011 av Jordan Walke, en programvareingeniør ved Facebook, først og fremst ved utviklingen av Facebooks Newsfeed-produkt. Senere ble det videreført og tatt i bruk i 2012 i bildedelingstjenesten Instagram. I mai 2013 kunngjorde Facebook at de ønsket å videreføre React i framtiden som et Open Source-Prosjekt. I oktober 2014 ble Reacts programvarelisens endret fra Apache-lisensen til BSD-lisensen som en ytterligere patentlisens, som forbeholder Facebook retten til å trekke tilbake lisensen ved patentstridigheter[13]. Denne ukonvensjonelle klausulen førte til en kontroversiell diskusjon. En omformulering av denne patentklausulen i april 2015 førte ikke til en slutt på konfliktene. I juli 2017 offentliggjorde Apace Software Foundation at de ikke tillater at apache-prosjekter kan ha denne tilleggslisensen. Kontra den opprinnelige informasjonen og uten ønske om å gå tilbake fra klausulen, offentliggjorde Facebook i september 2017 React versjon 16.0.0. under lisensen MIT.

Grunnleggende bruk

[rediger | rediger kilde]

Følgende er et rudimentært eksempel på React-bruk i HTML med JSX og JavaScript.

<div id="myReactApp"></div>

<script type="text/babel">
  class Greeter extends React.Component { 
    render() { 
      return <h1>{this.props.greeting}</h1>
    } 
  } 

  ReactDOM.render(<Greeter greeting="Hello World!" />, document.getElementById('myReactApp'));
</script>

Greeter-klassen er en React-komponent som godtar en egenskap greeting. ReactDOM.render-metoden skaper en forekomst av Greeter-komponenten, setter greeting-forekomsten til 'Hello World' og setter inn den gjengitte komponenten som et barnelement i DOM-elementet med ID myReactApp.

Når det vises i en nettleser, blir resultatet

<div id="myReactApp">
  <h1>Hello World!</h1>
</div>

Referanser

[rediger | rediger kilde]
  1. ^ https://registry.npmjs.com/react.
  2. ^ «React v16.0». 
  3. ^ "Change license and remove references to PATENTS"; tidspunkt: 24. september 2017.
  4. ^ «React - A JavaScript library for building user interfaces.». React. Besøkt 7. april 2018. 
  5. ^ Krill, Paul (15. mai 2014). «React: Making faster, smoother UIs for data-driven Web apps». InfoWorld. 
  6. ^ Hemel, Zef (3. juni 2013). «Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews». InfoQ. 
  7. ^ Dawson, Chris (25. juli 2014). «JavaScript’s History and How it Led To ReactJS». The New Stack. 
  8. ^ Dere, Mohan (19. februar 2018). «How to integrate create-react-app with all the libraries you need to make a great app». freeCodeCamp. 
  9. ^ Samp, Jon (13. januar 2018). «React Router to Redux First Router». About Codecademy. Besøkt 14. juni 2018. 
  10. ^ «Redux · A Predictable State Container for JS Apps». redux.js.org. Besøkt 23. oktober 2019. 
  11. ^ «React Router: Declarative Routing for React». ReactRouterWebsite (på engelsk). Besøkt 23. oktober 2019. 
  12. ^ Promise based HTTP client for the browser and node.js: axios/axios, axios, 2019-10-23, https://github.com/axios/axios, besøkt 2019-10-23 
  13. ^ «BSD + PATENTS · facebook/react@dcf415c». GitHub (på engelsk). Besøkt 29. januar 2021. 

Eksterne lenker

[rediger | rediger kilde]